module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/vue_shop_basic/' : '/',
  chainWebpack: config => {
    // process.env.NODE_ENV判断打包模式，是开发模式development还是生产发布模式production进行相应的打包配置
    // 发布模式
    config.when(process.env.NODE_ENV === 'production', config => {
      // 配置入口文件，clear清除原先的打包入口，add添加自定义的打包入口文件路径
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')

      // 配置externals,用于将依赖的第三方包进行cdn加载，减小打包的体积，加快页面加载速度
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })

      //   配置plugin插件进行首页内容的自定制,通过自定义的isProd属性进行判断
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
    })
    // 开发模式
    config.when(process.env.NODE_ENV === 'development', config => {
      config
        .entry('app')
        .clear()
        .add('./src/main-dev.js')

      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    })
  },
  devServer: {
    // host: 'localhost',// 输出地址
    port: 3333, // 输出端口
    open: true // 是否编译完成自动打开
  }
}
